
package com.wulian.common.entity;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 用户表
 * </p>
 *
 * @author Administrator
 * @since 2017-10-29
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString
@TableName("sys_user")
public class SysUser extends Model<SysUser> {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(value = "user_id", type = IdType.AUTO)
    private Integer userId;
    /**
     * 用户名
     */
    private String username;

    private String password;
    /**
     * 随机盐
     */
    @JsonIgnore
    private String salt;
    /**
     * 创建时间
     */
    @TableField("create_time")
    private Date createTime;
    /**
     * 修改时间
     */
    @TableField("update_time")
    private Date updateTime;
    /**
     * 0-正常，1-删除
     */
    @TableField("del_flag")
    private String delFlag;

    /**
     * 简介
     */
    private String phone;
    /**
     * 头像
     */
    private String avatar;

    /**
     * 部门ID
     */
    @TableField("dept_id")
    private Integer deptId;

    /**
     * E-mail
     */
    private String email;

    /**
     * 姓名
     */
    private String name;

    /**
     * 工号
     */
    @TableField("work_number")
    private String workNumber;

    /**
     * 状态0.启用1.停用
     */
    private Integer status;
    
    /**
     * 用户类型 0企业管理员 1普通员工
     */
    private String userType;

    @TableField(exist = false)
    private String projectName;

    @TableField(exist = false)
    private Integer projectId;

    /**
     * 手机用户是否有权限录入手表用户
     */
    @TableField(exist = false)
    private String authority;

    @TableField(exist = false)
    @ApiModelProperty("企业标记")
    private String companyLogo;

    @TableField(exist = false)
    @ApiModelProperty("企业名称")
    private String companyName;
    
    /**
     * 身份证
     */
    @TableField(exist = false)
    private String idCard;

    /**
     * 手机端是否是领导
     */
    @TableField(exist = false)
    private String leader;

    @ApiModelProperty("企业id")
    private Integer companyId;

    @ApiModelProperty("岗位id")
    @TableField(exist = false)
    private List<Integer> postIds;

    @ApiModelProperty("直属领导id")
    private Integer parentId;

    private Integer createId;

    private Integer updateId;

    /**
     * 20210513 ADD
     * 项目/代理商独有：0：未使用，1：管理权限，2：访客权限
     */
    @TableField("isadmin_auth")
    private Integer isadminAuth;

    /**
     * 20210513 ADD
     * 微信号openid
     */
    private String openid;

    /**
     * 20210513 ADD
     * 描述信息
     */
    private String comment;

    @Override
    protected Serializable pkVal() {
        return this.userId;
    }

}
